In general, when an event caused by a user's operation or a timer interrupt is generated in an electronic device, an operating system (OS) handles the event to provide it to a running application. If an application is not running, a generated event handled by the OS will not be supplied to the application. Thus, an application is required to be activated before generation of an event that can be provided to the application, since it is not possible to provide an event to an unexecuted application.
In portable electronic devices such as a mobile phone, however, it is generally not possible to execute two or more application. Due to hardware limitations, including memory, it is not possible to transfer two or more application programs to a memory at a time. In other words, an OS of a mobile phone is not capable of executing and running more than one application at a time.
Thus, in a case where a user wishes to provide an event to an application that is not running, the user must first terminate a currently running application before executing and running the application to which the user wishes to provide the event. More specifically, a case can be considered wherein a user wishes to initiate voice communication when an application (so called “a standby application”) is running, which can only be run while an any other application is not running. To do so, the user must first terminate the currently running standby application, and then press a designated key or keys to execute an application for performing voice communication. Next, the user presses a dial key, and this event (dial key input) is provided to the voice communication application.
As will be apparent from this description, it becomes necessary for a user to perform a number of manual operations, which is both time-consuming and troublesome, to terminate a currently running application so as to execute and run an application to which it is desired to provide an event (dial key input in this example).
In view of the above background, techniques have been developed for causing an OS to automatically execute predetermined users' operations. For example, when a user presses a dial key during execution of a currently running standby application, the OS automatically performs processing so as to terminate the application and execute a voice communication application, and provide the event (dial key input) to the voice communication application.
With increased functionality and complexity of mobile phones, however, such as applications for downloading content via a mobile communication network, and numerous other applications, it has become increasingly difficult to determine to which application an event is required to be provided. For example, while a dial key may be used for inputting a telephone number when a voice communication application is running, the same key may also be used for inputting a numeral when an e-mail application is running. Moreover, the same key may be used for inputting a URL when a web browser application is running. Due to the existence of a number of applications in which the key may be used, a malfunction may occur when an OS determines to which application an event (key input in this case) should be provided.
As will be apparent from the foregoing description, in an electronic device in which a limitation exists that only a single application can be run at any one time, the prior art technique for automating user inputs suffers from a problem that it may not be possible to determine to which application an event should be provided in a case that the event can potentially be applied to more than one application. Namely, it is not possible for a user to provide a generated event to an appropriate application without performing a number of manual operations, which is both time-consuming and troublesome.